home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 36 / Amiga Format CD36 (1999-01-22)(Future Publishing)(GB)[!][issue 1999-02].iso / -seriously_amiga- / graphics / gfx3d.library / docs / autodocs.txt next >
Text File  |  1998-12-12  |  51KB  |  2,361 lines

  1.  
  2.  
  3.  
  4. -----------------------------------------------------------------------------
  5.  
  6.                               gfx3d.library   v2.x
  7.  
  8.  
  9.                                     AUTODOCS
  10.  
  11. -----------------------------------------------------------------------------
  12.  
  13.  
  14.  
  15. Lista delle funzioni della libreria ordinata alfabeticamente:
  16.  
  17.      gfx3d.library/GFXAbs
  18.      gfx3d.library/GFXAdd
  19.      gfx3d.library/GFXAllocMem
  20.      gfx3d.library/GFXAspectRatio
  21.      gfx3d.library/GFXBegin
  22.      gfx3d.library/GFXClearWorkBuffer
  23.      gfx3d.library/GFXColor
  24.      gfx3d.library/GFXCos
  25.      gfx3d.library/GFXDirection
  26.      gfx3d.library/GFXDiv
  27.      gfx3d.library/GFXEnd
  28.      gfx3d.library/GFXEnvironment
  29.      gfx3d.library/GFXFarClip
  30.      gfx3d.library/GFXFeatures
  31.      gfx3d.library/GFXFix
  32.      gfx3d.library/GFXFixMul
  33.      gfx3d.library/GFXFixSqrt
  34.      gfx3d.library/GFXFlt
  35.      gfx3d.library/GFXFltMul
  36.      gfx3d.library/GFXFocus
  37.      gfx3d.library/GFXFrame
  38.      gfx3d.library/GFXFreeMem
  39.      gfx3d.library/GFXHeight
  40.      gfx3d.library/GFXModifyCameraAspectRatio
  41.      gfx3d.library/GFXModifyCameraDirection
  42.      gfx3d.library/GFXModifyCameraFocus
  43.      gfx3d.library/GFXModifyCameraHeight
  44.      gfx3d.library/GFXModifyCameraPosition
  45.      gfx3d.library/GFXModifyCameraVideoBuffer
  46.      gfx3d.library/GFXModifyCameraWidth
  47.      gfx3d.library/GFXModifyObjectDirection
  48.      gfx3d.library/GFXModifyObjectFrame
  49.      gfx3d.library/GFXModifyObjectPosition
  50.      gfx3d.library/GFXMul
  51.      gfx3d.library/GFXNearClip
  52.      gfx3d.library/GFXNeg
  53.      gfx3d.library/GFXObject
  54.      gfx3d.library/GFXPalette
  55.      gfx3d.library/GFXPi
  56.      gfx3d.library/GFXPolygon
  57.      gfx3d.library/GFXPosition
  58.      gfx3d.library/GFXSetColor
  59.      gfx3d.library/GFXSetFarClip
  60.      gfx3d.library/GFXSetNearClip
  61.      gfx3d.library/GFXSetShading
  62.      gfx3d.library/GFXShadeTable
  63.      gfx3d.library/GFXShading
  64.      gfx3d.library/GFXShareWorkBuffer
  65.      gfx3d.library/GFXSin
  66.      gfx3d.library/GFXSqrt
  67.      gfx3d.library/GFXSteps
  68.      gfx3d.library/GFXSub
  69.      gfx3d.library/GFXThreshold
  70.      gfx3d.library/GFXUpdateScene
  71.      gfx3d.library/GFXUpdateVideoBuffer
  72.      gfx3d.library/GFXVersion
  73.      gfx3d.library/GFXVertex
  74.      gfx3d.library/GFXVideoBuffer
  75.      gfx3d.library/GFXWidth
  76.      gfx3d.library/GFXWritePixel
  77.  
  78.  
  79.  
  80. -----------------------------------------------------------------------------
  81.  
  82.  
  83.  
  84.      gfx3d.library/GFXAbs
  85.  
  86.  
  87. SINTASSI
  88.  
  89.      result = GFXAbs (value)
  90.        D0              D0
  91.  
  92.  
  93. SCOPO
  94.  
  95.      Questa funzione serve per calcolare il valore assoluto di un numero
  96.      reale (rappresentato nel formato interno della libreria).
  97.  
  98.  
  99. ARGOMENTI
  100.  
  101.      value =   valore in formato reale.
  102.  
  103.  
  104. RISULTATO
  105.  
  106.      result =  valore assoluto, in formato reale, del valore dato in
  107.                ingresso.
  108.  
  109.  
  110. DISCUSSIONE
  111.  
  112.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  113.  
  114.  
  115.  
  116. -----------------------------------------------------------------------------
  117.  
  118.  
  119.  
  120.      gfx3d.library/GFXAdd
  121.  
  122.  
  123. SINTASSI
  124.  
  125.      result = GFXAdd (value1, value2)
  126.        D0               D1      D0
  127.  
  128.  
  129. SCOPO
  130.  
  131.      Questa funzione restituisce la somma di due numeri reali (rappresentati
  132.      nel formato interno della libreria).
  133.  
  134.  
  135. ARGOMENTI
  136.  
  137.      value1 =  valore in formato reale.
  138.  
  139.      value2 =  valore in formato reale.
  140.  
  141.  
  142. RISULTATO
  143.  
  144.      result =  somma, in formato reale, dei due numeri presenti in ingresso.
  145.  
  146.  
  147. DISCUSSIONE
  148.  
  149.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  150.  
  151.  
  152.  
  153. -----------------------------------------------------------------------------
  154.  
  155.  
  156.  
  157.      gfx3d.library/GFXAllocMem
  158.  
  159.  
  160. SINTASSI
  161.  
  162.      memptr = GFXAllocMem (bytesize)
  163.        D0                     D0
  164.  
  165.  
  166. SCOPO
  167.  
  168.      Questa funzione alloca un quantitativo di memoria pubblica del sistema.
  169.      La funzione restituisce l'indirizzo del blocco di memoria allocato
  170.      oppure il valore GFX_NULL in caso di insuccesso.
  171.  
  172.  
  173. ARGOMENTI
  174.  
  175.      bytesize =     dimensione in bytes del blocco di memoria pubblica da
  176.                     allocare.
  177.  
  178.  
  179. RISULTATO
  180.  
  181.      result =  indirizzo del blocco di memoria pubblica allocato.
  182.  
  183.  
  184. DISCUSSIONE
  185.  
  186.      Questa funzione è utilizzata per allocare un determinato quantitativo
  187.      di memoria del sistema. Non è necessario doversi ricordare l'indirizzo
  188.      ottenuto dalla funzione (a meno di non dover deallocare successivamente
  189.      il blocco tramite la funzione GFXFreeMem()), in quanto il gestore della
  190.      memoria interno alla libreria utilizza un memory pool, il quale si
  191.      occupa di deallocare tutta la memoria allocata dal task tramite le
  192.      chiamate alla funzione GFXAllocMem() all'uscita della libreria.
  193.      Si noti che la memoria allocata dalla funzione è pubblica, ovvero Fast
  194.      RAM in presenza di un'espansione. Questo implica che tutti i dati che
  195.      devono risiedere in Chip RAM (bitplanes, dati audio, ecc...) devono
  196.      venire allocati e deallocati dal task con le funzioni di sistema
  197.      appropriate.
  198.  
  199.  
  200.  
  201. -----------------------------------------------------------------------------
  202.  
  203.  
  204.  
  205.      gfx3d.library/GFXAspectRatio
  206.  
  207.  
  208. SINTASSI
  209.  
  210.      GFXAspectRatio (ratiox, ratioy, ratioz)
  211.                        D0      D1      D2
  212.  
  213.  
  214. SCOPO
  215.  
  216.      Questa funzione setta il fattore moltiplicativo della telecamera che si
  217.      sta definendo.
  218.  
  219.  
  220. ARGOMENTI
  221.  
  222.      ratiox =  valore reale per cui moltiplicare le coordinate X dei vertici
  223.                presenti nella scena prima della proiezione a video.
  224.  
  225.      ratioy =  valore reale per cui moltiplicare le coordinate Y dei vertici
  226.                presenti nella scena prima della proiezione a video.
  227.  
  228.      ratioz =  valore reale per cui moltiplicare le coordinate Z dei vertici
  229.                presenti nella scena prima della proiezione a video.
  230.  
  231.  
  232. DISCUSSIONE
  233.  
  234.      Questa funzione consente di settare l'aspetto della scena visualizzata
  235.      dalla telecamera.
  236.      Ad esempio, per visualizzare con le corrette proporzioni una scena su
  237.      uno schermo HiRes, occorre settare l'aspect ratio della telecamera
  238.      nel seguente modo:
  239.  
  240.           GFXAspectRatio( GFXFlt( 2 ), GFXFlt( 1 ), GFXFlt( 1 ) );
  241.  
  242.      in quanto i pixel presentano il caratteristico aspetto rettangolare 1:2.
  243.      Poichè i vertici subiscono la moltiplicazione dovuta all'aspetto prima
  244.      di essere proiettati a video, cioè quando sono espressi ancora in
  245.      Camera Coordinates, è possibile, variando opportunamente l'aspetto
  246.      delle coordinate Y, implementare l'effetto zoom di una telecamera.
  247.  
  248.  
  249.  
  250. -----------------------------------------------------------------------------
  251.  
  252.  
  253.  
  254.      gfx3d.library/GFXBegin
  255.  
  256.  
  257. SINTASSI
  258.  
  259.      GFXBegin (structType)
  260.                    D0
  261.  
  262.  
  263. SCOPO
  264.  
  265.      Questa funzione definisce il tipo di struttura dati i cui parametri
  266.      verranno definiti dalle successive funzioni.
  267.  
  268.  
  269. ARGOMENTI
  270.  
  271.      structType =   tipo di struttura dati da definire:
  272.                          - GFX_POLYGON
  273.                          - GFX_FRAME
  274.                          - GFX_OBJECT
  275.                          - GFX_ENVIRONMENT
  276.                          - GFX_CAMERA
  277.                          - GFX_SHADETABLE
  278.  
  279.  
  280. DISCUSSIONE
  281.  
  282.      Questa funzione viene utilizzata per iniziare un blocco di definizione
  283.      di una determinata struttura dati della libreria. Una sequenza di
  284.      definizione di una struttura dati inizia sempre con una chiamata alla
  285.      funzione GFXBegin() e si conclude sempre con una chiamata alla funzione
  286.      GFXEnd(). Le sequenze di definizione possono anche essere innestate.
  287.  
  288.      Ad esempio, le seguenti istruzioni definiscono un triangolo:
  289.  
  290.           GFXBegin( GFX_POLYGON );
  291.                GFXVertex( x0, y0, z0 );
  292.                GFXVertex( x1, y1, z1 );
  293.                GFXVertex( x2, y2, z2 );
  294.           triangle = GFXEnd();
  295.  
  296.      mentre le seguenti istrizioni definiscono un frame con due triangoli:
  297.  
  298.           GFXBegin( GFX_FRAME );
  299.                GFXBegin( GFX_POLYGON );
  300.                     GFXVertex( x2, y2, z2 );
  301.                     GFXVertex( x1, y1, z1 );
  302.                     GFXVertex( x0, y0, z0 );
  303.                GFXPolygon( GFXEnd() );
  304.                GFXPolygon( triangle );
  305.           frame = GFXEnd();
  306.  
  307.  
  308.  
  309. -----------------------------------------------------------------------------
  310.  
  311.  
  312.  
  313.      gfx3d.library/GFXClearWorkBuffer
  314.  
  315.  
  316. SINTASSI
  317.  
  318.      GFXClearWorkBuffer ()
  319.  
  320.  
  321. SCOPO
  322.  
  323.      Questa funzione pulisce il work buffer attualmente in uso.
  324.  
  325.  
  326. DISCUSSIONE
  327.  
  328.      Questa funzione si occupa di pulire il buffer di lavoro corrente,
  329.      riempendolo con il valore 0.
  330.      In genere, questa funzione va chiamata dopo la funzione
  331.      GFXUpdateVideoBuffer().
  332.  
  333.  
  334.  
  335. -----------------------------------------------------------------------------
  336.  
  337.  
  338.  
  339.      gfx3d.library/GFXColor
  340.  
  341.  
  342. SINTASSI
  343.  
  344.      GFXColor (color)
  345.                 D0
  346.  
  347.  
  348. SCOPO
  349.  
  350.      Questa funzione definisce il colore da associare alla struttura dati
  351.      che si sta definendo.
  352.  
  353.  
  354. ARGOMENTI
  355.  
  356.      color =   colore da associare alla struttura dati in definizione.
  357.  
  358.  
  359. DISCUSSIONE
  360.  
  361.      Questa funzione viene utilizzata per definire il colore da associare
  362.      alla struttura dati che si sta definendo. La funzione va quindi
  363.      chiamata all'interno di una sezione di definizione.
  364.  
  365.  
  366.  
  367. -----------------------------------------------------------------------------
  368.  
  369.  
  370.  
  371.      gfx3d.library/GFXCos
  372.  
  373.  
  374. SINTASSI
  375.  
  376.      value = GFXCos (angle)
  377.       D0              D0
  378.  
  379.  
  380. SCOPO
  381.  
  382.      Questa funzione restituisce il coseno dell'angolo dato in ingresso.
  383.  
  384.  
  385. ARGOMENTI
  386.  
  387.      angle =   valore reale esprimente l'angolo in radianti.
  388.  
  389.  
  390. RISULTATO
  391.  
  392.      result =  valore reale esprimente il coseno dell'angolo dato.
  393.  
  394.  
  395. DISCUSSIONE
  396.  
  397.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  398.  
  399.  
  400.  
  401. -----------------------------------------------------------------------------
  402.  
  403.  
  404.  
  405.      gfx3d.library/GFXDirection
  406.  
  407.  
  408. SINTASSI
  409.  
  410.      GFXDirection (ax, ay, az)
  411.                    D0  D1  D2
  412.  
  413.  
  414. SCOPO
  415.  
  416.      Questa funzione definisce la direzione da associare alla struttura dati
  417.      che si sta definendo.
  418.  
  419.  
  420. ARGOMENTI
  421.  
  422.      ax = valore intero esprimente l'angolo di rotazione attorno l'asse X.
  423.  
  424.      ay = valore intero esprimente l'angolo di rotazione attorno l'asse Y.
  425.  
  426.      az = valore intero esprimente l'angolo di rotazione attorno l'asse Z.
  427.  
  428.  
  429. DISCUSSIONE
  430.  
  431.      Questa funzione viene utilizzata per definire la direzione da associare
  432.      alla struttura dati che si sta definendo. La funzione va quindi
  433.      chiamata all'interno di una sezione di definizione.
  434.      Si ricordi che la libreria utilizza internamente 256 valori per
  435.      rappresentare una rotazione completa (gli angoli sono quindi espressi
  436.      in byte-gradi).
  437.      La corrispondenza con i gradi sessagesimali è riportata nella seguente
  438.      tabella:
  439.  
  440.           gradi sessagesimali      0   22.5 45   90   180  270
  441.      ---------------------------------------------------------------
  442.                byte gradi          0   16   32   64   128  192
  443.  
  444.  
  445.  
  446. -----------------------------------------------------------------------------
  447.  
  448.  
  449.  
  450.      gfx3d.library/GFXDiv
  451.  
  452.  
  453. SINTASSI
  454.  
  455.      result = GFXDiv (value1, value2)
  456.        D0               D1      D0
  457.  
  458.  
  459. SCOPO
  460.  
  461.      Questa funzione restituisce il quoziente di due numeri reali
  462.      (rappresentati nel formato interno della libreria).
  463.  
  464.  
  465. ARGOMENTI
  466.  
  467.      value1 =  valore in formato reale.
  468.  
  469.      value2 =  valore in formato reale.
  470.  
  471.  
  472. RISULTATO
  473.  
  474.      result =  quoziente, in formato reale, dei due numeri presenti in
  475.                ingresso (value2/value1).
  476.  
  477.  
  478. DISCUSSIONE
  479.  
  480.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  481.  
  482.  
  483.  
  484. -----------------------------------------------------------------------------
  485.  
  486.  
  487.  
  488.      gfx3d.library/GFXEnd
  489.  
  490.  
  491. SINTASSI
  492.  
  493.      structPtr = GFXEnd ()
  494.          D0
  495.  
  496.  
  497. SCOPO
  498.  
  499.      Questa funzione termina la sezione di definizione di una struttura dati
  500.      della libreria precedentemente iniziata tramite una chiamata alla
  501.      funzione GFXBegin().
  502.      In caso di errore (non è stato possibile creare la struttura dati
  503.      richiesta), il valore ritornato è GFX_NULL.
  504.  
  505.  
  506. RISULTATO
  507.  
  508.      structPtr =    puntatore alla struttura dati creata.
  509.  
  510.  
  511. DISCUSSIONE
  512.  
  513.      Si faccia riferimento alla discussione relativa la funzione GFXBegin().
  514.  
  515.  
  516.  
  517. -----------------------------------------------------------------------------
  518.  
  519.  
  520.  
  521.      gfx3d.library/GFXEnvironment
  522.  
  523.  
  524. SINTASSI
  525.  
  526.      GFXEnvironment (envptr)
  527.                        A0
  528.  
  529.  
  530. SCOPO
  531.  
  532.      Questa funzione associa una struttura Environment alla struttura Camera
  533.      che si sta definendo.
  534.  
  535.  
  536. ARGOMENTI
  537.  
  538.      envptr =  puntatore ad una struttura Environment precedentemente
  539.                definita.
  540.  
  541.  
  542. DISCUSSIONE
  543.  
  544.      Questa funzione viene utilizzata per definire l'ambiente in cui opera
  545.      la telecamera. La funzione va quindi chiamata all'interno della sezione
  546.      di definizione di una struttura Camera.
  547.      Sono possibili più viste di uno stesso ambiente, implementabili da
  548.      diverse telecamere operanti tutte sul medesimo ambiente.
  549.  
  550.  
  551.  
  552. -----------------------------------------------------------------------------
  553.  
  554.  
  555.  
  556.      gfx3d.library/GFXFarClip
  557.  
  558.  
  559. SINTASSI
  560.  
  561.      GFXFarClip (distance)
  562.                     D0
  563.  
  564.  
  565. SCOPO
  566.  
  567.      Questa funzione setta la massima distanza a cui è visualizzabile la
  568.      struttura dati che si sta definendo.
  569.  
  570.  
  571. ARGOMENTI
  572.  
  573.      distance =     valore intero rappresentante la distanza massima dalla
  574.                     telecamera.
  575.  
  576.  
  577. DISCUSSIONE
  578.  
  579.      Questa funzione viene utilizzata per definire la massima distanza a cui
  580.      è ancora visualizzabile la struttura dati che si sta definendo. La
  581.      funzione va quindi chiamata all'interno di una sezione di definizione.
  582.  
  583.  
  584.  
  585. -----------------------------------------------------------------------------
  586.  
  587.  
  588.  
  589.      gfx3d.library/GFXFeatures
  590.  
  591.  
  592. SINTASSI
  593.  
  594.      features = GFXFeatures ()
  595.         D0
  596.  
  597.  
  598. SCOPO
  599.  
  600.      Questa funzione restituisce le funzionalità supportate dalla libreria,
  601.      rispetto alla versione 1.0.
  602.  
  603.  
  604. RISULTATO
  605.  
  606.      features =     valore intero senza segno i cui bit, se settati,
  607.                     indicano le funzionalità supportate.
  608.  
  609.  
  610. DISCUSSIONE
  611.  
  612.      Tramite questa funzione, il task può 'interrogare' la libreria, al fine
  613.      di conoscere quali funzionalità sono supportate e quali no, decidendo
  614.      eventualmente quali scelte adottare.
  615.      Attualmente (gfx3d.library v2.0), sono definiti i seguenti bit:
  616.  
  617.           - GFX_FPU_SUPP
  618.                               indica che la libreria supporta il
  619.                               coprocessore matematico nei calcoli,
  620.                               al posto della matematica in virgola
  621.                               fissa.
  622.  
  623.           - GFX_FLAT_SHADING_SUPP
  624.                               indica che la libreria è in grado di
  625.                               eseguire il flat shading.
  626.  
  627.           - GFX_DEPTH_CUEING_SUPP
  628.                               indica che la libreria è in grado di
  629.                               eseguire il depth cueing.
  630.  
  631.      Naturalmente, nella stessa versione della libreria l'unico flag che
  632.      può variare è quello relativo al supporto dell'unità matematica, per
  633.      potersi adattare al tipo di CPU+FPU installate nel sistema.
  634.  
  635.      Ad esempio, il seguente codice esegue un test sulla FPU:
  636.  
  637.           if ( GFXFeatures() & GFX_FPU_SUPP )
  638.           {
  639.                /* in questo caso si devono utilizzare le funzioni  */
  640.                /* di supporto matematico offerte dalla libreria    */
  641.                /* (formato utilizzato = dipende dalla FPU)         */
  642.           }
  643.           else
  644.           {
  645.                /* in questo caso, invece, è consentito (ma non     */
  646.                /* consigliato) manipolare direttamente i valori    */
  647.                /* reali (formato utilizzato = virgola fissa 16+16) */
  648.           }
  649.  
  650.      La costante GFX_DEPTH_SHADING_SUPP ha il medesimo significato della
  651.      costante GFX_DEPTH_CUEING_SUPP.
  652.  
  653.  
  654.  
  655. -----------------------------------------------------------------------------
  656.  
  657.  
  658.  
  659.      gfx3d.library/GFXFix
  660.  
  661.  
  662. SINTASSI
  663.  
  664.      result = GFXFix (value)
  665.        D0              D0
  666.  
  667.  
  668. SCOPO
  669.  
  670.      Questa funzione consente di trasformare un valore reale, rappresentato
  671.      nel formato interno della libreria, nel corrispettivo valore intero.
  672.  
  673.  
  674. ARGOMENTI
  675.  
  676.      value =   valore reale.
  677.  
  678.  
  679. RISULTATO
  680.  
  681.      result =  valore intero.
  682.  
  683.  
  684. DISCUSSIONE
  685.  
  686.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  687.  
  688.  
  689.  
  690. -----------------------------------------------------------------------------
  691.  
  692.  
  693.  
  694.      gfx3d.library/GFXFixMul
  695.  
  696.  
  697. SINTASSI
  698.  
  699.      result = GFXFixMul (integer, real)
  700.        D0                  D1      D0
  701.  
  702.  
  703. SCOPO
  704.  
  705.      Questa funzione consente di moltiplicare un valore reale per un valore
  706.      intero, ottenendo come risultato un valore reale.
  707.  
  708.  
  709. ARGOMENTI
  710.  
  711.      integer = valore intero.
  712.  
  713.      real =    valore reale.
  714.  
  715.  
  716. RISULTATO
  717.  
  718.      result =  valore reale.
  719.  
  720.  
  721. DISCUSSIONE
  722.  
  723.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  724.  
  725.  
  726.  
  727. -----------------------------------------------------------------------------
  728.  
  729.  
  730.  
  731.      gfx3d.library/GFXFixSqrt
  732.  
  733.  
  734. SINTASSI
  735.  
  736.      result = GFXFixSqrt (value)
  737.        D0                  D0
  738.  
  739.  
  740. SCOPO
  741.  
  742.      Questa funzione consente di calcolare la radice quadrata di un valore
  743.      intero, ottenendo come risultato sempre un valore intero.
  744.  
  745.  
  746. ARGOMENTI
  747.  
  748.      value =   valore intero.
  749.  
  750.  
  751. RISULTATO
  752.  
  753.      result =  valore intero.
  754.  
  755.  
  756. DISCUSSIONE
  757.  
  758.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  759.  
  760.  
  761.  
  762. -----------------------------------------------------------------------------
  763.  
  764.  
  765.  
  766.      gfx3d.library/GFXFlt
  767.  
  768.  
  769. SINTASSI
  770.  
  771.      result = GFXFlt (value)
  772.        D0              D0
  773.  
  774.  
  775. SCOPO
  776.  
  777.      Questa funzione consente di trasformare un valore intero nel
  778.      corrispettivo valore reale, rappresentato nel formato interno della
  779.      libreria.
  780.  
  781.  
  782. ARGOMENTI
  783.  
  784.      value =   valore intero.
  785.  
  786.  
  787. RISULTATO
  788.  
  789.      result =  valore reale.
  790.  
  791.  
  792. DISCUSSIONE
  793.  
  794.      L'attuale versione della libreria gfx3d.library rappresenta i numeri
  795.      reali nel formato in virgola fissa a 32 bit, utilizzando i 16 bit più
  796.      significativi per rappresentare la parte intera, i 16 bit meno
  797.      significativi per rappresentare la parte frazionaria.
  798.      Questo formato consente di velocizzare l'esecuzione del codice nei
  799.      processori che non sono forniti di coprocessore matematico (come, ad
  800.      esempio, i Motorola 68020 e 68030), a scapito, però, della precisione
  801.      dei risultati.
  802.      Future versioni della libreria saranno sicuramente in grado di
  803.      utilizzare il coprocessore matematico presente nelle più moderne CPU.
  804.      Per evitare problemi di incompatibilità con le future versioni, si
  805.      raccomanda di utilizzare le funzioni di supporto matematico fornite
  806.      dalla libreria stessa.
  807.      Nel caso si preferisca comunque immettere direttamente i valori reali
  808.      nelle funzioni che ne richiedono, si raccomanda di 'interrogare' la
  809.      libreria stessa tramite la funzione GFXFeatures(), al fine di ottenere
  810.      il formato interno utilizzato dalla particolare versione della libreria.
  811.  
  812.  
  813.  
  814. -----------------------------------------------------------------------------
  815.  
  816.  
  817.  
  818.      gfx3d.library/GFXFltMul
  819.  
  820.  
  821. SINTASSI
  822.  
  823.      result = GFXFltMul (real, integer)
  824.        D0                 D1     D0
  825.  
  826.  
  827. SCOPO
  828.  
  829.      Questa funzione consente di moltiplicare un valore intero per un valore
  830.      reale, ottenendo come risultato un valore intero.
  831.  
  832.  
  833. ARGOMENTI
  834.  
  835.      real =    valore reale.
  836.  
  837.      integer = valore intero.
  838.  
  839.  
  840. RISULTATO
  841.  
  842.      result =  valore intero.
  843.  
  844.  
  845. DISCUSSIONE
  846.  
  847.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  848.  
  849.  
  850.  
  851. -----------------------------------------------------------------------------
  852.  
  853.  
  854.  
  855.      gfx3d.library/GFXFocus
  856.  
  857.  
  858. SINTASSI
  859.  
  860.      GFXFocus (focus)
  861.                 D0
  862.  
  863.  
  864. SCOPO
  865.  
  866.      Questa funzione definisce la distanza focale da associare alla
  867.      telecamera che si sta definendo.
  868.  
  869.  
  870. ARGOMENTI
  871.  
  872.      focus =   distanza focale da associare alla telecamera. Deve essere un
  873.                valore intero >0.
  874.  
  875.  
  876. DISCUSSIONE
  877.  
  878.      Questa funzione viene utilizzata per definire la distanza focale della
  879.      telecamera che si sta definendo. La funzione va quindi chiamata
  880.      all'interno della sezione di definizione di una struttura Camera.
  881.      La distanza focale influenza la prospettiva della scena visualizzata.
  882.  
  883.  
  884.  
  885. -----------------------------------------------------------------------------
  886.  
  887.  
  888.  
  889.      gfx3d.library/GFXFrame
  890.  
  891.  
  892. SINTASSI
  893.  
  894.      GFXFrame (frameptr)
  895.                   A0
  896.  
  897.  
  898. SCOPO
  899.  
  900.      Questa funzione associa un fotogramma all'oggetto che si sta definendo.
  901.  
  902.  
  903. ARGOMENTI
  904.  
  905.      frameptr =     puntatore ad una struttura Frame precedentemente creata.
  906.  
  907.  
  908. DISCUSSIONE
  909.  
  910.      Questa funzione viene utilizzata per associare il fotogramma iniziale
  911.      di un oggetto. La funzione va quindi chiamata all'interno della sezione
  912.      di definizione di una struttura Object.
  913.      Questa implementazione consente di ottenere due funzionalità principali.
  914.      Per prima cosa, c'è un notevole risparmio di memoria in presenza di più
  915.      oggetti tutti uguali. E' necessario infatti definire un solo fotogramma,
  916.      per poi assegnarlo ad ogni oggetto in questione.
  917.      La seconda funzione ottenibile è l'animazione per fotogrammi,
  918.      implementabile tramite la funzione GFXModifyObjectFrame(). In questo
  919.      caso è necessario però che il fotogramma assegnato inizialmente tramite
  920.      la funzione GFXFrame() sia quello, tra i vari fotogrammi appartenenti
  921.      all'animazione, con il maggior numero di vertici e di poligoni, in
  922.      quanto tali valori sono necessari per il corretto dimensionamento della
  923.      memoria allocata per la struttura Camera.
  924.  
  925.  
  926.  
  927. -----------------------------------------------------------------------------
  928.  
  929.  
  930.  
  931.      gfx3d.library/GFXFreeMem
  932.  
  933.  
  934. SINTASSI
  935.  
  936.      GFXFreeMem (memptr)
  937.                    A0
  938.  
  939.  
  940. SCOPO
  941.  
  942.      Questa funzione dealloca un quantitativo di memoria pubblica del
  943.      sistema precedentemente allocato tramite la funzione GFXAllocMem();
  944.  
  945.  
  946. ARGOMENTI
  947.  
  948.      memptr =  indirizzo del blocco di memoria da deallocare.
  949.  
  950.  
  951. DISCUSSIONE
  952.  
  953.      Nel caso sia necessario deallocare un blocco di memoria precedentemente
  954.      allocato dal task tramite la funzione GFXAllocMem(), tale risultato si
  955.      ottiene tramite la funzione GFXFreeMem().
  956.      Non è consentito deallocare la memoria in questione con le funzioni
  957.      fornite dal sistema operativo.
  958.      Si faccia anche riferimento alla discussione relativa la funzione
  959.      GFXAllocMem().
  960.  
  961.  
  962.  
  963. -----------------------------------------------------------------------------
  964.  
  965.  
  966.  
  967.      gfx3d.library/GFXHeight
  968.  
  969.  
  970. SINTASSI
  971.  
  972.      GFXHeight (height)
  973.                   D0
  974.  
  975.  
  976. SCOPO
  977.  
  978.      Questa funzione definisce l'altezza in pixel della visuale fornita
  979.      dalla telecamera che si sta definendo.
  980.  
  981.  
  982. ARGOMENTI
  983.  
  984.      height =  altezza in pixel della visuale fornita dalla Camera.
  985.  
  986.  
  987. DISCUSSIONE
  988.  
  989.      Questa funzione viene utilizzata per definire l'altezza della visuale
  990.      della telecamera che si sta definendo. La funzione va quindi chiamata
  991.      all'interno della sezione di definizione di una struttura Camera.
  992.      La dimensione dell'altezza di schermo deve essere compresa tra 1 e 200
  993.      pixels.
  994.      Si faccia anche riferimento alla discussione relativa la funzione
  995.      GFXWidth().
  996.  
  997.  
  998.  
  999. -----------------------------------------------------------------------------
  1000.  
  1001.  
  1002.  
  1003.      gfx3d.library/GFXModifyCameraAspectRatio
  1004.  
  1005.  
  1006. SINTASSI
  1007.  
  1008.      GFXModifyCameraAspectRatio (camera, ratiox, ratioy, ratioz)
  1009.                                    A0      D0      D1      D2
  1010.  
  1011. SCOPO
  1012.  
  1013.      Questa funzione modifica il fattore moltiplicativo di una telecamera.
  1014.  
  1015.  
  1016. ARGOMENTI
  1017.  
  1018.      camera =  puntatore ad una struttura Camera precedentemente creata.
  1019.  
  1020.      ratiox =  valore reale per cui moltiplicare le coordinate X dei vertici
  1021.                presenti nella scena prima della proiezione a video.
  1022.  
  1023.      ratioy =  valore reale per cui moltiplicare le coordinate Y dei vertici
  1024.                presenti nella scena prima della proiezione a video.
  1025.  
  1026.      ratioz =  valore reale per cui moltiplicare le coordinate Z dei vertici
  1027.                presenti nella scena prima della proiezione a video.
  1028.  
  1029.  
  1030. DISCUSSIONE
  1031.  
  1032.      Questa funzione consente di modificare dinamicamente l'aspetto della
  1033.      scena visualizzata dalla telecamera.
  1034.      Si faccia anche riferimento alla discussione relativa la funzione
  1035.      GFXAspectRatio().
  1036.  
  1037.  
  1038.  
  1039. -----------------------------------------------------------------------------
  1040.  
  1041.  
  1042.  
  1043.      gfx3d.library/GFXModifyCameraDirection
  1044.  
  1045.  
  1046. SINTASSI
  1047.  
  1048.      GFXModifyCameraDirection (camera, ax, ay, az)
  1049.                                  A0    D0  D1  D2
  1050.  
  1051.  
  1052. SCOPO
  1053.  
  1054.      Questa funzione modifica la direzione di vista di una telecamera.
  1055.  
  1056.  
  1057. ARGOMENTI
  1058.  
  1059.      camera =  puntatore ad una struttura Camera precedentemente creata.
  1060.  
  1061.      ax =      valore intero esprimente l'angolo di rotazione attorno
  1062.                l'asse X.
  1063.  
  1064.      ay =      valore intero esprimente l'angolo di rotazione attorno
  1065.                l'asse Y.
  1066.  
  1067.      az =      valore intero esprimente l'angolo di rotazione attorno
  1068.                l'asse Z.
  1069.  
  1070.  
  1071. DISCUSSIONE
  1072.  
  1073.      Questa funzione consente di modificare dinamicamente la direzione di
  1074.      vista di una telecamera.
  1075.      Si faccia anche riferimento alla discussione relativa la funzione
  1076.      GFXDirection().
  1077.  
  1078.  
  1079.  
  1080. -----------------------------------------------------------------------------
  1081.  
  1082.  
  1083.  
  1084.      gfx3d.library/GFXModifyCameraFocus
  1085.  
  1086.  
  1087. SINTASSI
  1088.  
  1089.      GFXModifyCameraFocus (camera, focus)
  1090.                              A0     D0
  1091.  
  1092.  
  1093. SCOPO
  1094.  
  1095.      Questa funzione modifica la distanza focale di una telecamera.
  1096.  
  1097.  
  1098. ARGOMENTI
  1099.  
  1100.      camera =  puntatore ad una struttura Camera precedentemente creata.
  1101.  
  1102.      focus =   nuova distanza focale della telecamera. Deve essere un valore
  1103.                intero >0.
  1104.  
  1105.  
  1106. DISCUSSIONE
  1107.  
  1108.      La distanza focale influenza la prospettiva della scena visualizzata.
  1109.  
  1110.  
  1111.  
  1112. -----------------------------------------------------------------------------
  1113.  
  1114.  
  1115.  
  1116.      gfx3d.library/GFXModifyCameraHeight
  1117.  
  1118.  
  1119. SINTASSI
  1120.  
  1121.      GFXModifyCameraHeight (camera, height)
  1122.                               A0      D0
  1123.  
  1124.  
  1125. SCOPO
  1126.  
  1127.      Questa funzione modifica dinamicamente l'altezza in pixel della visuale
  1128.      fornita da una telecamera.
  1129.  
  1130.  
  1131. ARGOMENTI
  1132.  
  1133.      camera =  puntatore ad una struttura Camera precedentemente creata.
  1134.  
  1135.      height =  nuova altezza in pixel della visuale fornita dalla Camera.
  1136.  
  1137.  
  1138. DISCUSSIONE
  1139.  
  1140.      La dimensione dell'altezza di schermo deve essere compresa tra 1 e 200
  1141.      pixels.
  1142.  
  1143.  
  1144.  
  1145. -----------------------------------------------------------------------------
  1146.  
  1147.  
  1148.  
  1149.      gfx3d.library/GFXModifyCameraPosition
  1150.  
  1151.  
  1152. SINTASSI
  1153.  
  1154.      GFXModifyCameraPosition (camera, x, y, z)
  1155.                                 A0    D0 D1 D2
  1156.  
  1157.  
  1158. SCOPO
  1159.  
  1160.      Questa funzione modifica la posizione di una telecamera.
  1161.  
  1162.  
  1163. ARGOMENTI
  1164.  
  1165.      camera =  puntatore ad una struttura Camera precedentemente creata.
  1166.  
  1167.      x =       valore intero esprimente la nuova posizione sull'asse X.
  1168.  
  1169.      y =       valore intero esprimente la nuova posizione sull'asse Y.
  1170.  
  1171.      z =       valore intero esprimente la nuova posizione sull'asse Z.
  1172.  
  1173.  
  1174. DISCUSSIONE
  1175.  
  1176.      Questa funzione consente di modificare dinamicamente la posizione di
  1177.      una telecamera.
  1178.      Si faccia anche riferimento alla discussione relativa la funzione
  1179.      GFXPosition().
  1180.  
  1181.  
  1182.  
  1183. -----------------------------------------------------------------------------
  1184.  
  1185.  
  1186.  
  1187.      gfx3d.library/GFXModifyCameraVideoBuffer
  1188.  
  1189.  
  1190. SINTASSI
  1191.  
  1192.      GFXModifyCameraVideoBuffer (camera, vidbuff)
  1193.                                    A0      A1
  1194.  
  1195.  
  1196. SCOPO
  1197.  
  1198.      Questa funzione modifica l'indirizzo dello schermo video di una
  1199.      telecamera.
  1200.  
  1201.  
  1202. ARGOMENTI
  1203.  
  1204.      camera =  puntatore ad una struttura Camera precedentemente creata.
  1205.  
  1206.      vidbuff = puntatore alla bitmap dell'uscita video di una telecamera.
  1207.  
  1208.  
  1209. DISCUSSIONE
  1210.  
  1211.      Si faccia riferimento alla discussione relativa la funzione
  1212.      GFXVideoBuffer().
  1213.  
  1214.  
  1215.  
  1216. -----------------------------------------------------------------------------
  1217.  
  1218.  
  1219.  
  1220.      gfx3d.library/GFXModifyCameraWidth
  1221.  
  1222.  
  1223. SINTASSI
  1224.  
  1225.      GFXModifyCameraWidth (camera, width)
  1226.                              A0     D0
  1227.  
  1228.  
  1229. SCOPO
  1230.  
  1231.      Questa funzione modifica dinamicamente la larghezza in pixel della
  1232.      visuale fornita da una telecamera.
  1233.  
  1234.  
  1235. ARGOMENTI
  1236.  
  1237.      camera =  puntatore ad una struttura Camera precedentemente creata.
  1238.  
  1239.      width =   nuova larghezza in pixel della visuale fornita dalla Camera.
  1240.  
  1241.  
  1242. DISCUSSIONE
  1243.  
  1244.      La dimensione della larghezza di schermo deve essere compresa tra 32 e
  1245.      320 pixels, e deve essere un multiplo di 32 pixel.
  1246.  
  1247.  
  1248.  
  1249. -----------------------------------------------------------------------------
  1250.  
  1251.  
  1252.  
  1253.      gfx3d.library/GFXModifyObjectDirection
  1254.  
  1255.  
  1256. SINTASSI
  1257.  
  1258.      GFXModifyObjectDirection (object, ax, ay, az)
  1259.                                  A0    D0  D1  D2
  1260.  
  1261.  
  1262. SCOPO
  1263.  
  1264.      Questa funzione modifica l'orientamento di un oggetto.
  1265.  
  1266.  
  1267. ARGOMENTI
  1268.  
  1269.      object =  puntatore ad una struttura Object precedentemente creata.
  1270.  
  1271.      ax =      valore intero esprimente l'angolo di rotazione attorno
  1272.                l'asse X dell'oggetto.
  1273.  
  1274.      ay =      valore intero esprimente l'angolo di rotazione attorno
  1275.                l'asse Y dell'oggetto.
  1276.  
  1277.      az =      valore intero esprimente l'angolo di rotazione attorno
  1278.                l'asse Z dell'oggetto.
  1279.  
  1280.  
  1281. DISCUSSIONE
  1282.  
  1283.      Questa funzione consente di modificare dinamicamente l'orientamento di
  1284.      un oggetto.
  1285.      Si faccia anche riferimento alla discussione relativa la funzione
  1286.      GFXDirection().
  1287.  
  1288.  
  1289.  
  1290. -----------------------------------------------------------------------------
  1291.  
  1292.  
  1293.  
  1294.      gfx3d.library/GFXModifyObjectFrame
  1295.  
  1296.  
  1297. SINTASSI
  1298.  
  1299.      GFXModifyObjectFrame (object, frame)
  1300.                              A0     A1
  1301.  
  1302.  
  1303. SCOPO
  1304.  
  1305.      Questa funzione modifica dinamicamente il fotogramma di un oggetto.
  1306.  
  1307.  
  1308. ARGOMENTI
  1309.  
  1310.      object =  puntatore ad una struttura Object precedentemente creata.
  1311.  
  1312.      frame =   puntatore ad una struttura Frame precedentemente creata.
  1313.  
  1314.  
  1315. DISCUSSIONE
  1316.  
  1317.      Tramite questa funzione è possibile implementare un'animazione a
  1318.      fotogrammi di un oggetto.
  1319.      Si faccia anche riferimento alla discussione relativa la funzione
  1320.      GFXFrame().
  1321.  
  1322.  
  1323.  
  1324. -----------------------------------------------------------------------------
  1325.  
  1326.  
  1327.  
  1328.      gfx3d.library/GFXModifyObjectPosition
  1329.  
  1330.  
  1331. SINTASSI
  1332.  
  1333.      GFXModifyObjectPosition (object, x, y, z)
  1334.                                 A0    D0 D1 D2
  1335.  
  1336.  
  1337. SCOPO
  1338.  
  1339.      Questa funzione modifica la posizione di un oggetto.
  1340.  
  1341.  
  1342. ARGOMENTI
  1343.  
  1344.      object =  puntatore ad una struttura Object precedentemente creata.
  1345.  
  1346.      x =       valore intero esprimente la nuova posizione sull'asse X.
  1347.  
  1348.      y =       valore intero esprimente la nuova posizione sull'asse Y.
  1349.  
  1350.      z =       valore intero esprimente la nuova posizione sull'asse Z.
  1351.  
  1352.  
  1353. DISCUSSIONE
  1354.  
  1355.      Questa funzione consente di modificare dinamicamente la posizione di
  1356.      un oggetto.
  1357.      Si faccia anche riferimento alla discussione relativa la funzione
  1358.      GFXPosition().
  1359.  
  1360.  
  1361.  
  1362. -----------------------------------------------------------------------------
  1363.  
  1364.  
  1365.  
  1366.      gfx3d.library/GFXMul
  1367.  
  1368.  
  1369. SINTASSI
  1370.  
  1371.      result = GFXMul (value1, value2)
  1372.        D0               D1      D0
  1373.  
  1374.  
  1375. SCOPO
  1376.  
  1377.      Questa funzione restituisce il prodotto di due numeri reali
  1378.      (rappresentati nel formato interno della libreria).
  1379.  
  1380.  
  1381. ARGOMENTI
  1382.  
  1383.      value1 =  valore in formato reale.
  1384.  
  1385.      value2 =  valore in formato reale.
  1386.  
  1387.  
  1388. RISULTATO
  1389.  
  1390.      result =  prodotto, in formato reale, dei due numeri presenti in
  1391.                ingresso.
  1392.  
  1393.  
  1394. DISCUSSIONE
  1395.  
  1396.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  1397.  
  1398.  
  1399.  
  1400. -----------------------------------------------------------------------------
  1401.  
  1402.  
  1403.  
  1404.      gfx3d.library/GFXNearClip
  1405.  
  1406.  
  1407. SINTASSI
  1408.  
  1409.      GFXNearClip (distance)
  1410.                      D0
  1411.  
  1412.  
  1413. SCOPO
  1414.  
  1415.      Questa funzione setta la minima distanza a cui è visualizzabile
  1416.      l'oggetto che si sta definendo.
  1417.  
  1418.  
  1419. ARGOMENTI
  1420.  
  1421.      distance =     valore intero rappresentante la distanza minima dalla
  1422.                     telecamera.
  1423.  
  1424.  
  1425. DISCUSSIONE
  1426.  
  1427.      Questa funzione viene utilizzata per definire la minima distanza a cui
  1428.      è ancora visualizzabile l'oggetto che si sta definendo. La funzione va
  1429.      quindi chiamata all'interno della sezione di definizione di un oggetto.
  1430.      Normalmente, si pone tale distanza al valore -focus+1, dove focus è
  1431.      la distanza focale della telecamera.
  1432.  
  1433.  
  1434.  
  1435. -----------------------------------------------------------------------------
  1436.  
  1437.  
  1438.  
  1439.      gfx3d.library/GFXNeg
  1440.  
  1441.  
  1442. SINTASSI
  1443.  
  1444.      result = GFXNeg (value)
  1445.        D0              D0
  1446.  
  1447.  
  1448. SCOPO
  1449.  
  1450.      Questa funzione restituisce il negato del valore reale (rappresentato
  1451.      nel formato interno della libreria) dato in ingresso.
  1452.  
  1453.  
  1454. ARGOMENTI
  1455.  
  1456.      value =   valore in formato reale.
  1457.  
  1458.  
  1459. RISULTATO
  1460.  
  1461.      result =  valore in formato reale.
  1462.  
  1463.  
  1464. DISCUSSIONE
  1465.  
  1466.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  1467.  
  1468.  
  1469.  
  1470. -----------------------------------------------------------------------------
  1471.  
  1472.  
  1473.  
  1474.      gfx3d.library/GFXObject
  1475.  
  1476.  
  1477. SINTASSI
  1478.  
  1479.      GFXObject (objptr)
  1480.                   A0
  1481.  
  1482.  
  1483. SCOPO
  1484.  
  1485.      Questa funzione aggiunge un oggetto ad un ambiente.
  1486.  
  1487.  
  1488. ARGOMENTI
  1489.  
  1490.      objptr =  puntatore ad una struttura Object precedentemente creata.
  1491.  
  1492.  
  1493. DISCUSSIONE
  1494.  
  1495.      Questa funzione viene utilizzata per aggiungere un oggetto ad un
  1496.      ambiente. La funzione va quindi chiamata all'interno della sezione di
  1497.      definizione di una struttura Environment.
  1498.      E' importante che l'associazione oggetto-ambiente sia biunivoca, cioè
  1499.      che un oggetto appartenga ad un solo ambiente, il quale sia il solo a
  1500.      contenere tale oggetto. Nel caso sia necessario associare l'oggetto
  1501.      anche ad un altro ambiente, si dovrà creare un oggetto simile al primo
  1502.      (si può utilizzare anche lo stesso fotogramma puntato dal primo), per
  1503.      assegnarlo poi al secondo ambiente.
  1504.  
  1505.  
  1506.  
  1507. -----------------------------------------------------------------------------
  1508.  
  1509.  
  1510.  
  1511.      gfx3d.library/GFXPalette
  1512.  
  1513.  
  1514. SINTASSI
  1515.  
  1516.      GFXPalette (paletteptr)
  1517.                      A0
  1518.  
  1519.  
  1520. SCOPO
  1521.  
  1522.      Questa funzione setta la palette di riferimento per una struttura delle
  1523.      sfumature dei colori.
  1524.  
  1525.  
  1526. ARGOMENTI
  1527.  
  1528.      paletteptr =   puntatore ad una struttura Palette inizializzata
  1529.                     esternamente.
  1530.  
  1531.  
  1532. DISCUSSIONE
  1533.  
  1534.      Questa funzione viene utilizzata per settare la palette dei colori di
  1535.      riferimento per la struttura adibita a calcolare le sfumature dei
  1536.      colori. La funzione va quindi chiamata all'interno della sezione di
  1537.      definizione di una struttura ShadeTable.
  1538.  
  1539.  
  1540.  
  1541. -----------------------------------------------------------------------------
  1542.  
  1543.  
  1544.  
  1545.      gfx3d.library/GFXPi
  1546.  
  1547.  
  1548. SINTASSI
  1549.  
  1550.      result = GFXPi ()
  1551.        D0
  1552.  
  1553.  
  1554. SCOPO
  1555.  
  1556.      Questa funzione restituisce il numero pi-greco, utile nelle funzioni
  1557.      trigonometriche.
  1558.  
  1559.  
  1560. RISULTATO
  1561.  
  1562.      result =  valore reale ( 3.141592654... ).
  1563.  
  1564.  
  1565. DISCUSSIONE
  1566.  
  1567.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  1568.  
  1569.  
  1570.  
  1571. -----------------------------------------------------------------------------
  1572.  
  1573.  
  1574.  
  1575.      gfx3d.library/GFXPolygon
  1576.  
  1577.  
  1578. SINTASSI
  1579.  
  1580.      GFXPolygon (polyptr)
  1581.                    A0
  1582.  
  1583.  
  1584. SCOPO
  1585.  
  1586.      Questa funzione aggiunge un poligono ad un fotogramma.
  1587.  
  1588.  
  1589. ARGOMENTI
  1590.  
  1591.      polyptr = puntatore ad una struttura Polygon precedentemente creata.
  1592.  
  1593.  
  1594. DISCUSSIONE
  1595.  
  1596.      Questa funzione viene utilizzata per aggiungere un poligono ad un
  1597.      fotogramma. La funzione va quindi chiamata all'interno della sezione di
  1598.      definizione di una struttura Frame.
  1599.  
  1600.  
  1601. IMPORTANTE
  1602.  
  1603.      Dalla versione 2.4 della libreria, una volta aggiunto il poligono al
  1604.      frame, la struttura dati del poligono viene deallocata dalla memoria.
  1605.  
  1606.  
  1607.  
  1608. -----------------------------------------------------------------------------
  1609.  
  1610.  
  1611.  
  1612.      gfx3d.library/GFXPosition
  1613.  
  1614.  
  1615. SINTASSI
  1616.  
  1617.      GFXPosition (x, y, z)
  1618.                   D0 D1 D2
  1619.  
  1620.  
  1621. SCOPO
  1622.  
  1623.      Questa funzione definisce la posizione da associare alla struttura dati
  1624.      che si sta definendo.
  1625.  
  1626.  
  1627. ARGOMENTI
  1628.  
  1629.      x =  valore intero esprimente la posizione sull'asse X.
  1630.  
  1631.      y =  valore intero esprimente la posizione sull'asse Y.
  1632.  
  1633.      z =  valore intero esprimente la posizione sull'asse Z.
  1634.  
  1635.  
  1636. DISCUSSIONE
  1637.  
  1638.      Questa funzione viene utilizzata per definire la posizione da associare
  1639.      alla struttura dati che si sta definendo. La funzione va quindi
  1640.      chiamata all'interno di una sezione di definizione.
  1641.  
  1642.  
  1643.  
  1644. -----------------------------------------------------------------------------
  1645.  
  1646.  
  1647.  
  1648.      gfx3d.library/GFXSetColor
  1649.  
  1650.  
  1651. SINTASSI
  1652.  
  1653.      GFXSetColor (color)
  1654.                    D0
  1655.  
  1656.  
  1657. SCOPO
  1658.  
  1659.      Questa funzione definisce il colore di default per le successive
  1660.      definizioni di strutture dati.
  1661.  
  1662.  
  1663. ARGOMENTI
  1664.  
  1665.      color =   colore di default.
  1666.  
  1667.  
  1668. DISCUSSIONE
  1669.  
  1670.      Questa funzione viene utilizzata per definire il colore di default da
  1671.      associare alle successive strutture dati da definire.
  1672.      Di conseguenza, tale funzione viene invocata all'esterno delle sezioni
  1673.      di definizione.
  1674.      Ad esempio, il seguente codice definisce due poligoni aventi lo stesso
  1675.      colore:
  1676.  
  1677.           GFXBegin( GFX_POLYGON );
  1678.                GFXColor( col );
  1679.                GFXVertex( x0, y0, z0 );
  1680.                GFXVertex( x1, y1, z1 );
  1681.                GFXVertex( x2, y2, z2 );
  1682.           poly1 = GFXEnd();
  1683.           GFXBegin( GFX_POLYGON );
  1684.                GFXColor( col );
  1685.                GFXVertex( x3, y3, z3 );
  1686.                GFXVertex( x4, y4, z4 );
  1687.                GFXVertex( x5, y5, z5 );
  1688.           poly2 = GFXEnd();
  1689.  
  1690.      mentre, il seguente codice esegue la medesima cosa:
  1691.  
  1692.           GFXSetColor( col );
  1693.           GFXBegin( GFX_POLYGON );
  1694.                GFXVertex( x0, y0, z0 );
  1695.                GFXVertex( x1, y1, z1 );
  1696.                GFXVertex( x2, y2, z2 );
  1697.           poly1 = GFXEnd();
  1698.           GFXBegin( GFX_POLYGON );
  1699.                GFXVertex( x3, y3, z3 );
  1700.                GFXVertex( x4, y4, z4 );
  1701.                GFXVertex( x5, y5, z5 );
  1702.           poly2 = GFXEnd();
  1703.  
  1704.  
  1705.  
  1706. -----------------------------------------------------------------------------
  1707.  
  1708.  
  1709.  
  1710.      gfx3d.library/GFXSetFarClip
  1711.  
  1712.  
  1713. SINTASSI
  1714.  
  1715.      GFXSetFarClip (distance)
  1716.                        D0
  1717.  
  1718.  
  1719. SCOPO
  1720.  
  1721.      Questa funzione setta di default la massima distanza a cui saranno
  1722.      visualizzabili le successive strutture dati da definire.
  1723.  
  1724.  
  1725. ARGOMENTI
  1726.  
  1727.      distance =     valore intero rappresentante la distanza massima dalla
  1728.                     telecamera.
  1729.  
  1730.  
  1731. DISCUSSIONE
  1732.  
  1733.      Questa funzione viene utilizzata per definire la massima distanza di
  1734.      default a cui saranno ancora visualizzabili le successive strutture
  1735.      dati da definire.
  1736.      Di conseguenza, tale funzione viene invocata all'esterno delle sezioni
  1737.      di definizione.
  1738.  
  1739.  
  1740.  
  1741. -----------------------------------------------------------------------------
  1742.  
  1743.  
  1744.  
  1745.      gfx3d.library/GFXSetNearClip
  1746.  
  1747.  
  1748. SINTASSI
  1749.  
  1750.      GFXSetNearClip (distance)
  1751.                         D0
  1752.  
  1753.  
  1754. SCOPO
  1755.  
  1756.      Questa funzione setta di default la minima distanza a cui saranno
  1757.      visualizzabili le successive strutture dati da definire.
  1758.  
  1759.  
  1760. ARGOMENTI
  1761.  
  1762.      distance =     valore intero rappresentante la distanza minima dalla
  1763.                     telecamera.
  1764.  
  1765.  
  1766. DISCUSSIONE
  1767.  
  1768.      Questa funzione viene utilizzata per definire la minima distanza di
  1769.      default a cui saranno ancora visualizzabili le successive strutture
  1770.      dati da definire.
  1771.      Di conseguenza, tale funzione viene invocata all'esterno delle sezioni
  1772.      di definizione.
  1773.  
  1774.  
  1775.  
  1776. -----------------------------------------------------------------------------
  1777.  
  1778.  
  1779.  
  1780.      gfx3d.library/GFXSetShading
  1781.  
  1782.  
  1783. SINTASSI
  1784.  
  1785.      GFXSetShading (shading)
  1786.                       D0
  1787.  
  1788.  
  1789. SCOPO
  1790.  
  1791.      Questa funzione definisce il tipo di ombreggiatura di default per le
  1792.      successive definizioni di strutture dati.
  1793.  
  1794.  
  1795. ARGOMENTI
  1796.  
  1797.      shading = tipo di ombreggiatura.
  1798.  
  1799.  
  1800. DISCUSSIONE
  1801.  
  1802.      Questa funzione viene utilizzata per definire il tipo di ombreggiatura
  1803.      di default da associare alle successive strutture dati da definire.
  1804.      Di conseguenza, tale funzione viene invocata all'esterno delle sezioni
  1805.      di definizione.
  1806.  
  1807.  
  1808.  
  1809. -----------------------------------------------------------------------------
  1810.  
  1811.  
  1812.  
  1813.      gfx3d.library/GFXShadeTable
  1814.  
  1815.  
  1816. SINTASSI
  1817.  
  1818.      GFXShadeTable (shtptr)
  1819.                       A0
  1820.  
  1821.  
  1822. SCOPO
  1823.  
  1824.      Questa funzione setta la tabella delle sfumature per l'ambiente che si
  1825.      sta definendo.
  1826.  
  1827.  
  1828. ARGOMENTI
  1829.  
  1830.      shtptr =  puntatore ad una struttura ShadeTable precedentemente creata.
  1831.  
  1832.  
  1833. DISCUSSIONE
  1834.  
  1835.      Questa funzione viene utilizzata per settare la tabella delle sfumature
  1836.      dei colori per l'ambiente che si sta definendo. La funzione va quindi
  1837.      chiamata all'interno della sezione di definizione di una struttura
  1838.      Environment.
  1839.  
  1840.  
  1841.  
  1842. -----------------------------------------------------------------------------
  1843.  
  1844.  
  1845.  
  1846.      gfx3d.library/GFXShading
  1847.  
  1848.  
  1849. SINTASSI
  1850.  
  1851.      GFXShading (shading)
  1852.                    D0
  1853.  
  1854.  
  1855. SCOPO
  1856.  
  1857.      Questa funzione definisce il tipo di ombreggiatura per il poligono che
  1858.      si sta definendo.
  1859.  
  1860.  
  1861. ARGOMENTI
  1862.  
  1863.      shading = tipo di ombreggiatura:
  1864.                     - GFX_FILL_SHADING
  1865.                     - GFX_FLAT_SHADING
  1866.                     - GFX_DEPTH_CUEING
  1867.  
  1868.  
  1869. DISCUSSIONE
  1870.  
  1871.      Questa funzione viene utilizzata per settare il tipo di ombreggiatura
  1872.      da associare al poligono che si sta definendo. La funzione va quindi
  1873.      chiamata all'interno della sezione di definizione di una struttura
  1874.      Polygon.
  1875.      Il valore GFX_DEPTH_SHADING ha il medesimo significato di
  1876.      GFX_DEPTH_CUEING.
  1877.  
  1878.  
  1879.  
  1880. -----------------------------------------------------------------------------
  1881.  
  1882.  
  1883.  
  1884.      gfx3d.library/GFXShareWorkBuffer
  1885.  
  1886.  
  1887. SINTASSI
  1888.  
  1889.      GFXShareWorkBuffer (cameraptr)
  1890.                             A0
  1891.  
  1892.  
  1893. SCOPO
  1894.  
  1895.      Questa funzione permette di condividere lo stesso buffer di lavoro con più
  1896.      telecamere.
  1897.  
  1898.  
  1899. ARGOMENTI
  1900.  
  1901.      cameraptr =    puntatore ad una struttura Camera precedentemente creata.
  1902.  
  1903.  
  1904. DISCUSSIONE
  1905.  
  1906.      Questa funzione permette la condivisione di un solo buffer di lavoro con
  1907.      diverse telecamere. La funzione va chiamata all'interno della sezione di
  1908.      definizione di una struttura Camera. La struttura che si sta definendo
  1909.      avrà così lo stesso work buffer condiviso con la struttura specificata nel
  1910.      parametro di ingresso.
  1911.      La dimensione del work buffer deve essere sufficiente per la telecamera
  1912.      destinazione, in quanto la libreria non effettua alcun controllo
  1913.      preventivo.
  1914.  
  1915.  
  1916.  
  1917. -----------------------------------------------------------------------------
  1918.  
  1919.  
  1920.  
  1921.      gfx3d.library/GFXSin
  1922.  
  1923.  
  1924. SINTASSI
  1925.  
  1926.      value = GFXSin (angle)
  1927.       D0              D0
  1928.  
  1929.  
  1930. SCOPO
  1931.  
  1932.      Questa funzione restituisce il seno dell'angolo dato in ingresso.
  1933.  
  1934.  
  1935. ARGOMENTI
  1936.  
  1937.      angle =   valore reale esprimente l'angolo in radianti.
  1938.  
  1939.  
  1940. RISULTATO
  1941.  
  1942.      result =  valore reale esprimente il seno dell'angolo dato.
  1943.  
  1944.  
  1945. DISCUSSIONE
  1946.  
  1947.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  1948.  
  1949.  
  1950.  
  1951. -----------------------------------------------------------------------------
  1952.  
  1953.  
  1954.  
  1955.      gfx3d.library/GFXSqrt
  1956.  
  1957.  
  1958. SINTASSI
  1959.  
  1960.      result = GFXSqrt (value)
  1961.        D0               D0
  1962.  
  1963.  
  1964. SCOPO
  1965.  
  1966.      Questa funzione consente di calcolare la radice quadrata di un valore
  1967.      reale.
  1968.  
  1969.  
  1970. ARGOMENTI
  1971.  
  1972.      value =   valore reale.
  1973.  
  1974.  
  1975. RISULTATO
  1976.  
  1977.      result =  valore reale.
  1978.  
  1979.  
  1980. DISCUSSIONE
  1981.  
  1982.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  1983.  
  1984.  
  1985.  
  1986. -----------------------------------------------------------------------------
  1987.  
  1988.  
  1989.  
  1990.      gfx3d.library/GFXSteps
  1991.  
  1992.  
  1993. SINTASSI
  1994.  
  1995.      GFXSteps (steps)
  1996.                 D0
  1997.  
  1998.  
  1999. SCOPO
  2000.  
  2001.      Questa funzione definisce il numero di sfumature per colore da assegnare
  2002.      alla tabella delle sfumature che si sta definendo.
  2003.  
  2004.  
  2005. ARGOMENTI
  2006.  
  2007.      steps =   numero di sfumature per passare da un colore ad un altro.
  2008.  
  2009.  
  2010. DISCUSSIONE
  2011.  
  2012.      Questa funzione viene utilizzata per definire il numero di sfumature nel
  2013.      passare da un colore ad un altro. La funzione va chiamata all'interno
  2014.      della sezione di definizione di una struttura ShadeTable.
  2015.  
  2016.  
  2017.  
  2018. -----------------------------------------------------------------------------
  2019.  
  2020.  
  2021.  
  2022.      gfx3d.library/GFXSub
  2023.  
  2024.  
  2025. SINTASSI
  2026.  
  2027.      result = GFXSub (value1, value2)
  2028.        D0               D1      D0
  2029.  
  2030.  
  2031. SCOPO
  2032.  
  2033.      Questa funzione restituisce la sottrazione di due numeri reali
  2034.      (rappresentati nel formato interno della libreria).
  2035.  
  2036.  
  2037. ARGOMENTI
  2038.  
  2039.      value1 =  valore in formato reale.
  2040.  
  2041.      value2 =  valore in formato reale.
  2042.  
  2043.  
  2044. RISULTATO
  2045.  
  2046.      result =  differenza dei due numeri presenti in ingresso (value2-value1).
  2047.  
  2048.  
  2049. DISCUSSIONE
  2050.  
  2051.      Si faccia riferimento alla discussione relativa la funzione GFXFlt().
  2052.  
  2053.  
  2054.  
  2055. -----------------------------------------------------------------------------
  2056.  
  2057.  
  2058.  
  2059.      gfx3d.library/GFXThreshold
  2060.  
  2061.  
  2062. SINTASSI
  2063.  
  2064.      GFXThreshold (threshold)
  2065.                       D0
  2066.  
  2067.  
  2068. SCOPO
  2069.  
  2070.      Questa funzione definisce la soglia alla quale fermarsi nella sfumatura
  2071.      da un colore ad un altro.
  2072.  
  2073.  
  2074. ARGOMENTI
  2075.  
  2076.      threshold =    valore di soglia riferito al numero di passi.
  2077.  
  2078.  
  2079. DISCUSSIONE
  2080.  
  2081.      Questa funzione viene utilizzata per definire il valore di soglia alla
  2082.      quale fermarsi nella sfumatura da un colore ad un altro. La funzione va
  2083.      chiamata all'interno della sezione di definizione di una struttura
  2084.      ShadeTable.
  2085.      La soglia permette di selezionare solo una parte del range di sfumatura
  2086.      fra due colori.
  2087.  
  2088.  
  2089. ESEMPIO
  2090.  
  2091.      Bianco                                                          Nero
  2092.        |--------|--------|--------|--------|--------|--------|-------->
  2093.        0        1        2        3        4        5        6        7
  2094.  
  2095.      In questo caso, la sfumatura dal bianco al nero utilizza 7 passaggi
  2096.      ( quindi, è stata eseguita la chiamata GFXSteps( 7 ) ).
  2097.  
  2098.      Utilizzando invece un valore di soglia, la sfumatura completa non termina
  2099.      più al colore nero, ma ad un colore intermedio:
  2100.  
  2101.      Bianco                              Grigio
  2102.        |--------|--------|--------|-------->
  2103.        0        1        2        3        4
  2104.  
  2105.      ( In questo caso, è stata eseguita la chiamata GFXThreshold( 4 ) dopo
  2106.      l'invocazione della funzione GFXSteps() ).
  2107.  
  2108.  
  2109.  
  2110. -----------------------------------------------------------------------------
  2111.  
  2112.  
  2113.  
  2114.      gfx3d.library/GFXUpdateScene
  2115.  
  2116.  
  2117. SINTASSI
  2118.  
  2119.      GFXUpdateScene (cameraptr)
  2120.                         A0
  2121.  
  2122.  
  2123. SCOPO
  2124.  
  2125.      Questa funzione aggiorna la scena visualizzata dalla telecamera, scrivendo
  2126.      il risultato nel buffer di lavoro.
  2127.  
  2128.  
  2129. ARGOMENTI
  2130.  
  2131.      cameraptr =    puntatore ad una struttura Camera.
  2132.  
  2133.  
  2134. DISCUSSIONE
  2135.  
  2136.      Questa è la funzione principale della libreria. Tale funzione si occupa
  2137.      infatti di aggiornare tutti i parametri della scena (quali la posizione
  2138.      dei vari oggetti, la loro direzione, ecc...) e della telecamera (distanza
  2139.      focale, aspetto visivo, ecc...). Successivamente, la funzione si occupa di
  2140.      scrivere il risultato sul work buffer.
  2141.      E' compito del task sincronizzare l'uscita video tramite la funzione
  2142.      GFXUpdateVideoBuffer().
  2143.  
  2144.  
  2145.  
  2146. -----------------------------------------------------------------------------
  2147.  
  2148.  
  2149.  
  2150.      gfx3d.library/GFXUpdateVideoBuffer
  2151.  
  2152.  
  2153. SINTASSI
  2154.  
  2155.      GFXUpdateVideoBuffer ()
  2156.  
  2157.  
  2158. SCOPO
  2159.  
  2160.      Questa funzione si occupa di aggiornare il buffer video con il contenuto
  2161.      del buffer di lavoro.
  2162.  
  2163.  
  2164. DISCUSSIONE
  2165.  
  2166.      Normalmente, tale funzione viene invocata dopo la funzione
  2167.      GFXUpdateScene(). Tale funzione rende infatti di default il work buffer ed
  2168.      il video buffer della camera da visualizzare.
  2169.      E' compito del task sincronizzare l'uscita video tramite la funzione
  2170.      GFXUpdateVideoBuffer().
  2171.  
  2172.  
  2173.  
  2174. -----------------------------------------------------------------------------
  2175.  
  2176.  
  2177.  
  2178.      gfx3d.library/GFXVersion
  2179.  
  2180.  
  2181. SINTASSI
  2182.  
  2183.      result = GFXVersion ()
  2184.        D0
  2185.  
  2186.  
  2187. SCOPO
  2188.  
  2189.      Questa funzione restituisce la versione e la revisione corrente della
  2190.      libreria.
  2191.  
  2192.  
  2193. RISULTATO
  2194.  
  2195.      result =  risultato richiesto.
  2196.  
  2197.  
  2198. DISCUSSIONE
  2199.  
  2200.      Tramite questa funzione il task può conoscere il numero di versione e di
  2201.      revisione della libreria. Il numero di versione viene restituito nella
  2202.      parte alte del risultato, il numero di revisione viene restituito nella
  2203.      parte bassa del risultato.
  2204.  
  2205.  
  2206.  
  2207. -----------------------------------------------------------------------------
  2208.  
  2209.  
  2210.  
  2211.      gfx3d.library/GFXVertex
  2212.  
  2213.  
  2214. SINTASSI
  2215.  
  2216.      GFXVertex (x, y, z)
  2217.                 D0 D1 D2
  2218.  
  2219.  
  2220. SCOPO
  2221.  
  2222.      Questa funzione definisce un vertice di un poligono.
  2223.  
  2224.  
  2225. ARGOMENTI
  2226.  
  2227.      x =  valore intero rappresentante la coordinata sull'asse X.
  2228.      y =  valore intero rappresentante la coordinata sull'asse Y.
  2229.      z =  valore intero rappresentante la coordinata sull'asse Z.
  2230.  
  2231.  
  2232. DISCUSSIONE
  2233.  
  2234.      Questa funzione viene utilizzata per definire un vertice del poligono che
  2235.      si sta definendo. La funzione va quindi chiamata all'interno della sezione
  2236.      di definizione di una struttura Polygon.
  2237.      Attualmente, non sono supportati poligoni composti da più di tre vertici,
  2238.      quindi eventuali vertici definiti in più sono ignorati.
  2239.      La libreria segue la regola della mano destra, quindi, affinchè un
  2240.      poligono sia visualizzabile, i vertici devono descrivere a video un
  2241.      percorso antiorario. Eventuali poligoni aventi entrambe le facce visibili
  2242.      devono essere specificati come due strutture Polygon distinte.
  2243.  
  2244.  
  2245.  
  2246. -----------------------------------------------------------------------------
  2247.  
  2248.  
  2249.  
  2250.      gfx3d.library/GFXVideoBuffer
  2251.  
  2252.  
  2253. SINTASSI
  2254.  
  2255.      GFXVideoBuffer (videoptr)
  2256.                         A0
  2257.  
  2258.  
  2259. SCOPO
  2260.  
  2261.      Questa funzione associa il buffer video alla struttura Camera che si sta
  2262.      definendo.
  2263.  
  2264.  
  2265. ARGOMENTI
  2266.  
  2267.      videoptr =     puntatore al video buffer.
  2268.  
  2269.  
  2270. DISCUSSIONE
  2271.  
  2272.      Questa funzione viene utilizzata per definire il buffer video di una
  2273.      telecamera. La funzione va quindi chiamata all'interno della sezione di
  2274.      definizione di una struttura Camera.
  2275.      Attualmente, il video buffer deve essere un blocco contiguo di chip ram
  2276.      (che deve essere quindi allocato e deallocato esternamente dal task) delle
  2277.      dimensioni di LARGHEZZAxALTEZZA bytes. L'indirizzo del video buffer
  2278.      coincide con il puntatore al primo bitplane (#0) della bitmap di
  2279.      destinazione, a cui segue il secondo (#1), il terzo(#2) e così via fino
  2280.      all'ottavo bitplane (#7).
  2281.  
  2282.  
  2283.  
  2284. -----------------------------------------------------------------------------
  2285.  
  2286.  
  2287.  
  2288.      gfx3d.library/GFXWidth
  2289.  
  2290.  
  2291. SINTASSI
  2292.  
  2293.      GFXWidth (width)
  2294.                 D0
  2295.  
  2296.  
  2297. SCOPO
  2298.  
  2299.      Questa funzione definisce la larghezza in pixel della visuale fornita
  2300.      dalla telecamera che si sta definendo.
  2301.  
  2302.  
  2303. ARGOMENTI
  2304.  
  2305.      width =   larghezza in pixel della visuale fornita dalla Camera.
  2306.  
  2307.  
  2308. DISCUSSIONE
  2309.  
  2310.      Questa funzione viene utilizzata per definire la larghezza della visuale
  2311.      della telecamera che si sta definendo. La funzione va quindi chiamata
  2312.      all'interno della sezione di definizione di una struttura Camera.
  2313.      La dimensione della larghezza di schermo deve essere compresa tra 32 e 320
  2314.      pixels, e deve essere multipla di 32 pixels.
  2315.      Si faccia anche riferimento alla discussione relativa la funzione
  2316.      GFXHeight().
  2317.  
  2318.  
  2319.  
  2320. -----------------------------------------------------------------------------
  2321.  
  2322.  
  2323.  
  2324.      gfx3d.library/GFXWritePixel
  2325.  
  2326.  
  2327. SINTASSI
  2328.  
  2329.      GFXWritePixel (x, y, color)
  2330.                     D0 D1 D2
  2331.  
  2332.  
  2333. SCOPO
  2334.  
  2335.      Questa funzione scrive un pixel nel buffer di lavoro corrente.
  2336.  
  2337.  
  2338. ARGOMENTI
  2339.  
  2340.      x =       coordinata orizzontale del pivel sul video.
  2341.      y =       coordinata verticale del pixel sul video.
  2342.      color =   colore del pixel.
  2343.  
  2344.  
  2345. DISCUSSIONE
  2346.  
  2347.      Questa funzione permette al task di scrivere un pixel nel work buffer
  2348.      corrente. Eventuali punti eccedenti le dimensioni correnti dello schermo
  2349.      sono ricondotti ai margini del video.
  2350.      Si tenga presente che la libreria considera l'origine delle coordinate al
  2351.      centro dello schermo. Le coordinate estreme del video sono quindi:
  2352.  
  2353.           -WIDTH/2  <=  x  <=  -(WIDTH/2)-1
  2354.           -HEIGHT/2 <=  y  <= -(HEIGHT/2)-1
  2355.  
  2356.  
  2357.  
  2358. -----------------------------------------------------------------------------
  2359.  
  2360.  
  2361.